package service;

import co.crossoft.annotation.Param;

import java.util.ArrayList;

/**
 * Created by Snow on 8/11/2017.
 */
public interface ExposeBomService {

    String bomListByBom(@Param("plant") String plant,
                        @Param("id") String id,
                        @Param("version") String version);

    String addBomData(@Param("plant") String plant,
                      @Param("id") String id,
                      @Param("adopted") String adopted,
                      @Param("bomType") String bomType,
                      @Param("curVersion") String curVersion,
                      @Param("version") String version,
                      @Param("name") String name,
                      @Param("bomTem") String bomTem,
                      @Param("statusFk") String statusFk,
                      @Param("dateEffect") String dateEffect,
                      @Param("dateExpire") String dateExpire
    );

    String deleteBomData(@Param("plant") String plant,
                     @Param("id") String id,
                     @Param("version") String version);

    String deleteBomAndComp(@Param("quid") String quid);

    String addComponent(@Param("sequence") String sequence,
                        @Param("assembleOperationFk") String assembleOperationFk,
                        @Param("bomFk") String bomFk,
                        @Param("bomComponentType") String bomComponentType,
                        @Param("disassembleOperationFk") String disassembleOperationFk,
                        @Param("assyDataTypeFk") String assyDataTypeFk,
                        @Param("maximumNc") String maximumNc,
                        @Param("materialFk") String materialFk,
                        @Param("maximumUsage") String maximumUsage,
                        @Param("qty") String qty,
                        @Param("assembleAsReq") String assembleAsReq,
                        @Param("enabled") String enabled,
                        @Param("useItemDefaults") String useItemDefaults,
                        @Param("testPart") String testPart
    );

    String deleteComponent(@Param("bomComponentIdJson") String bomComponentIdJson);

    String reDisBomComp(@Param("souBomCompId") String souBomCompId,
                        @Param("destBomId") String destBomId);

    String getBomComponent( @Param("id") String id,
                            @Param("bomFk") String bomFk);

    String createNewVisionBom( @Param("id") String id,
                               @Param("name") String name,
                               @Param("version") String version,
                               @Param("parentBomId") String parentBomId,
                               @Param("plant") String plant);

    String dialogComSelect( @Param("quid") String quid,
                            @Param("id") String id);
}
